草庐IT

Java Swingworker 和多线程

全部标签

java - 在多个服务器上分配 Java 线程?

我是Java的新手,非常喜欢学习它。我制作了一个运行良好的程序,但当我添加更多数据以供处理时需要花费一些时间。我使它线程化,它确实加快了很多速度,但现在我正在考虑尝试加快它的速度(显然,它必须处理的数据越多,花费的时间越长)。仅供引用,我的程序不在线程之间共享任何数据,它获取列表中的一项并进行一些数学运算并将结果上传到数据库。理想情况下,几台工作计算机获取列表​​中的一些项目,然后执行其工作,然后获取更多工作直到完成我做了一些研究并找到了队列,但我不确定它是否是我需要的,或者是否还有其他东西(我也在想保持worker的完整性/监控可能对我来说太过分了新手)。我家里有4台电脑(一些Lin

java - HashBiMap 是线程安全的吗?

com.google.common.collect.HashBiMap的文档不要说明它是否是线程安全的。我想这意味着它不是,但我想我会问以防我错了。 最佳答案 HashBiMap内部使用了多个自定义哈希表,这些哈希表不是线程安全的。您应该使用以下方式同步对HashBiMap的访问:Maps.synchronizedBiMap(yourHashBiMap); 关于java-HashBiMap是线程安全的吗?,我们在StackOverflow上找到一个类似的问题:

java - 在java中杀死一个正在运行的线程?

如何在java中杀死正在运行的线程 最佳答案 您可以通过调用Thread.interrupt()要求线程中断请注意,存在一些具有类似语义的其他方法-stop()和destroy()-但它们已弃用,因为它们是unsafe.不要试图使用它们。 关于java-在java中杀死一个正在运行的线程?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3130701/

java - 无状态 session bean 中的多线程?

EJB3.0规范不允许无状态sessionbean的业务方法创建新线程。这是为什么?创建仅执行原始计算且从不调用应用服务器的额外工作线程有什么问题?比如说,我的sessionbean实现了一个让用户上传图像的服务,业务方法对这些图像进行cpu密集型图像处理。那么它只能使用一个cpu核心来完成这项工作,即使机器有8个或更多核心?如果我使用在内部创建工作线程的第三方图像处理库,我也会违反EJB规范,即使该库和这些线程与EJB容器完全无关。这似乎不对。如果我忽略EJB规则并仍然创建一些工作线程来进行CPU密集型处理,会发生什么情况?当然,这些线程永远不会接触任何应用程序服务器对象,并且bea

基于Linux C++多线程服务器 + Qt上位机开发 + STM32 + 8266WIFI的智慧无人超市

前言针对传统超市购物车结账排队时间长、付款效率低的问题,提出了一种更符合现代社会人们购物方式-基于RFID的自助收银系统。习惯了快节奏生活的人们都会选择自助收银机结账,理由显而易见:自助收银机结账很方便,几乎不用排队,也不用近距离和收银员接触,在防疫时期特别感觉安心。而且自助结账对每件物品的售价更是一次清晰地核对,最终需支付合计购物支出自己也更加清晰明了;这两年来,越来越多的智能设备应用在我们的生活领域里,为我们的生活提供了很多智能和便利。自助收银机从几年前就陆续涌入到各地商场、超市、便利店,自去年疫情发生后自助收银的需求比例更是呈直线上升趋势。自助收银机的启用,不仅节约了超市的人力开支成本,

Java ConcurrentHashMap 不是线程安全的..wth?

我之前用的是HashMappublicMapclients=newHashMap();现在我已经切换到ConcurrentHashMap以避免同步块(synchronizedblock),现在我遇到了问题我的服务器每秒200-400个并发客户端负载很重,预计会随着时间的推移而增长。现在看起来像这样publicConcurrentHashMapclients=newConcurrentHashMap();我的服务器设计是这样的。我有一个用于处理大量数据包的工作线程。每个数据包都使用packetHandler子例程(不是线程的一部分)进行检查,几乎任何客户端都可以在任何时候调用它,它几乎像

java - 如何更改 ExecutorService 中的线程名称?

这个问题在这里已经有了答案:Namingthreadsandthread-poolsofExecutorService(20个答案)关闭5年前。我正在使用ExecutorService来执行一些Callable,但线程的名称类似于fixed-pool-1-thread-1。如何更改线程的名称?如果不可能,还有另一种方法来执行我可以设置线程名称的Callables吗?

java - Java线程是在用户空间还是内核空间创建的?

检查这段代码Threadt1=newThread(newRunnable(){@Overridepublicvoidrun(){try{System.out.println("STARTINGSERVER...");ServerSockets=newServerSocket(2544);System.out.println("SERVERBLOCKEDONACCEPT");Socketss=s.accept();System.out.println("SERVERNOTBLOCKEDANYMORE");}catch(Exceptionex){ex.printStackTrace();}

java - 使 DateFormat 线程安全。使用什么,同步或线程本地

我想让以下代码线程安全。实现它的最佳方法是什么?privatestaticfinalDateFormatDATE_FORMAT=DateFormat.getDateTimeInstance();publicstaticfinalStringeventTypeToDateTimeString(longtimestamp){returnDATE_FORMAT.format(newDate(timestamp));} 最佳答案 避免使用旧的日期时间类Java最早版本捆绑的麻烦的旧日期时间类已被java.time类所取代。java.time

java - 我如何从 Java 中的另一个线程杀死一个线程?

我正在从主线程调用两个线程,称它们为线程1和线程2。当线程1停止时,我也想停止或终止线程2。我该怎么做?我想要的实际输出发生了变化。那就是有一个主类也是线程。从主类我调用thread1和thread2。我从主类给thread1输入但是当这个输入被改变时,我想杀死正在运行的线程1并用另一个输入再次启动它。第二个线程,线程2将使用线程1给出的输出运行。所以最终当第一个线程被杀死时,第二个线程将运行但只有当t6here是该线程的输入时才会给出输出。 最佳答案 Java弃用了显式终止另一个线程的方法(如Thread.stop/Thread.